package com.blockchain.console.service.system;

import com.blockchain.console.service.system.entity.SysLog;
import com.blockchain.console.service.system.query.SysLogQuery;
import com.blockchain.framework.service.Service;
import com.blockchain.framework.service.query.Paging;
import com.blockchain.framework.service.query.PagingResult;

public abstract interface SysLoginLogManage extends Service {
	/**
	 * 
	 * <dt>
	 * <dl>
	 * 描述：根据条件分页显示所有系统用户登录日志
	 * </dl>
	 * 
	 * <dl>
	 * 数据校验：
	 * <ol>
	 * <li>无</li>
	 * </ol>
	 * </dl>
	 * 
	 * <dl>
	 * 逻辑校验：
	 * <ol>
	 * <li>无</li>
	 * </ol>
	 * </dl>
	 * 
	 * <dl>
	 * 业务处理：
	 * <ol>
	 * <li>查询{@code T7012}表</li>
	 * <li>查询条件:
	 * <li>如果{@code query != null} 则</li>
	 * <ol>
	 * <li>如果{@link SysLogQuery#getAccountName()}不为空  则{@code T7012.F02 LIKE }{@link SysLogQuery#getAccountName()}</li>
	 * <li>如果{@link SysLogQuery#getCreateTimeStart()}不为空  则{@code DATE(T7012.F03)>= }{@link SysLogQuery#getCreateTimeStart()}</li>
	 * <li>如果{@link SysLogQuery#getCreateTimeEnd()}不为空  则{@code DATE(T7012.F03)<= }{@link SysLogQuery#getCreateTimeEnd()}</li>
	 * </ol>
	 * </li>
	 * </li>
	 * <li>按照{@code T7012.F03}字段降序排序</li>
	 * <li>
	 * 查询字段列表:
	 * <ol>
	 * <li>{@link SysLog#id}对应{@code T7012.F01}</li>
	 * <li>{@link SysLog#accountName}对应{@code T7012.F02}</li>
	 * <li>{@link SysLog#lastTime}对应{@code T7012.F03}</li>
	 * <li>{@link SysLog#lastIp}对应{@code T7012.F04}</li>
	 * <li>{@link SysLog#isSuccess}对应{@code T7012.F05}</li>
	 * 
	 * </ol>
	 * </li>
	 * </ol>
	 * </dl>
	 * </dt>			
	 * 
	 * @param query 查询条件
	 * @param paging 分页参数
	 * @return {@link PagingResult}{@code <}{@link SysLog}{@code >} 查询结果
	 * @throws Throwable 
	 */
	public abstract PagingResult<SysLog> seacrch(SysLogQuery query,
			Paging paging) throws Throwable;
}
